1. Field
The present disclosure relates generally to an improved data processing system and, more particularly, to a method and apparatus for tracking instructions. Still more particularly, the present disclosure relates to a method and apparatus for tracking instructions dispatched for processing in a processor.
2. Description of the Related Art
A processor in a computer is the part of the computer that processes instructions in a program. In processing instructions, the instructions may be sent by a dispatching unit in the processor to various functional units for processing. These units may perform different operations using the instructions.
Additionally, a processor may retrieve instructions for different paths. For example, with a branch instruction, a subsequent group of instructions is processed if a branch is not taken. A different group of instructions starting at a target address is processed if the branch is taken. Instructions for both groups may be fetched by a sequencer so that those groups of instructions are ready for processing.
With respect to processing, both groups of instructions may be processed. With this situation, some results may not be needed and may be discarded. Additionally, if instructions for two different paths are fetched for processing, one of those paths may be taken before all of instructions in both paths are processed. As a result, instructions that have not yet been processed in the path not taken may be flushed or removed. These instructions are tracked in a data structure used by a completion unit within the processor. This data structure often takes the form of a global completion table. The global completion table obtains entries in which each entry tracks a group of instructions. A group of instructions is one or more instructions that have been fetched as a group.